package dzz.Week1;

public class JianZhiOffer58_LeftRotationString {

    // 方法一：字符串切片
    class SolutionOne {
        public String reverseLeftWords(String s, int n) {
            return s.substring(n, s.length()) + s.substring(0, n);
        }
    }

    // 方法二：列表遍历拼接
    class SolutionTwo_Zero {
        public String reverseLeftWords(String s, int n) {
            StringBuilder res = new StringBuilder();
            for (int i = n; i < s.length(); i++) {
                res.append(s.charAt(i));
            }
            for (int i = 0; i < n; i++) {
                res.append(s.charAt(i));
            }
            return res.toString();
        }
    }

    // 方法二： 求余运算,简化代码
    class SolutionTwo_One {
        public String reverseLeftWords(String s, int n) {
            StringBuilder res = new StringBuilder();
            for (int i = n; i < n + s.length(); i++) {
                res.append(s.charAt(i % s.length()));
            }
            return res.toString();
        }
    }

    // 方法三：字符串遍历拼接
    class SolutionThree_Zero {
        public String reverseLeftWords(String s, int n) {
            String res = "";
            for(int i = n; i < s.length(); i++) {
                res += s.charAt(i);
            }
            for (int i = 0; i < n; i++) {
                res += s.charAt(i);
            }
            return res;
        }
    }

    // 方法三：求余运算,简化代码
    class SolutionThree_One {
        public String reverseLeftWords(String s, int n) {
            String res = "";
            for(int i = n; i < n + s.length(); i++) {
                res += s.charAt(i % s.length());
            }

            return res;
        }
    }

}
